x86: vMSI: Fix msi irq affinity issue for hvm guest.
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 19 Oct 2009 09:50:46 +0000 (10:50 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 19 Oct 2009 09:50:46 +0000 (10:50 +0100)
commit88cc4a0fc546e7a5bb3abd71fd99485b6bf698ab
tree38c78c7675bb4331ebf5babafaa383e1c397c780
parent70829c3d48270689fdea6ec8808a232d88483d65
x86: vMSI: Fix msi irq affinity issue for hvm guest.

There is a race between guest setting new vector and doing EOI on old
vector.  Once guest sets new vector before its doing EOI on vector,
when guest does eoi, hypervisor may fail to find the related pirq, and
hypervisor may miss to EOI real vector and leads to system hang.  We
may need to add a timer for each pirq interrupt source to avoid host
hang, but this is another topic, and will be addressed later.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
xen/arch/x86/hvm/vmsi.c
xen/drivers/passthrough/io.c
xen/include/xen/hvm/irq.h